
package library.holdings;

public class Book extends HoldingImpl {
    private int pages;

    public Book(String title, int pages) {
	super(title);
	setPages(pages);
    }

    public void setPages(int pages) {
	if (pages < 0)
	    throw new IllegalArgumentException("negative pages");
	this.pages = pages;
    }

    public int getPages() {
	return pages;
    }

    public String toString() {
	return "Book: " + super.toString() + " pages: " + pages;
    }

    public boolean equals (Object rhs) {
	if (rhs instanceof Book) {
	    Book b = (Book)rhs;
	    return super.equals(rhs) && pages == b.pages;
	}
	return false;
    }

    public static void main (String[] args) {
	Book javaProgLang = new Book("The Java Programming Language", 333);
	System.out.println(javaProgLang);
	Book mobyDick = new Book("Moby Dick", -2048);
	System.out.println(mobyDick);
	Book badBook = new Book(null, 256);
	System.out.println(badBook);
    }
}

